package com.jiang.convertor;

import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;

public class StringToSetConvertor extends DefaultTypeConverter {

	
	/**
	 * 自定义参数转换器，从String-->Set   11|22|33 -->Set<Integer>
	 */
	@SuppressWarnings("rawtypes")
	@Override
	public Object convertValue(Map<String, Object> context, Object value, Class toType) {

		if(value!=null){
			String singleValue = ((String[])value)[0];
			if(toType.equals(Set.class)){
				String[] eachvalue= singleValue.split("\\-"); // Tomcat7.0后不支持get请求传特殊字符串|, 如果要用请用post请求或者换成-
				Set<Integer> set = new HashSet<Integer>();
				for(String each: eachvalue){
					set.add(Integer.parseInt(each));
				}
				return set;
			}else{
				return null; // 不转换
			}
		}else{
			return null; // 不转换
		}
		
	}
	
}
